<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="zh" xml:lang="zh" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Guideline: 设计模型</title>
<meta name="uma.type" content="Guideline">
<meta name="uma.name" content="design_model">
<meta name="uma.presentationName" content="设计模型">
<meta name="element_type" content="other">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../../css/default.css" type="text/css">
<script src="./../../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var backPath = './../../../';
					var imgPath = './../../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo,  '', false, false, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top"><a name="Top"></a>
<div id="page-guid" value="2.3158107674855575E-306"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Guideline: 设计模型</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../../images/guidance.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">本指南说明如何从分析模型派生设计模型。</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Related Elements</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../rup/domains/analysis_and_design_BD3BBB1D.html" guid="_kjFBYN7HEdm8G6yT7-Wdqw">分析与设计</a>
</li>
<li>
<a href="./../../../rup/workproducts/rup_design_model_2830034D.html" guid="{8CDAEAD4-5E84-4F50-87FD-3240ED047DE7}">设计模型</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Main Description</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td class="sectionTableSingleCell"><a id="Top" name="Top"></a> 
<h3>
    <a id="Identifying Design Elements from Analysis Classes" name="Identifying Design Elements from Analysis Classes">从分析类确定设计元素</a> <img height="20" alt="回到页首"     src="./../../../rup/resources/top.gif" width="26" border="0" />
</h3>
<p>
    <a class="elementLinkWithType" href="./../../../rup/workproducts/rup_analysis_class_DAF7CE03.html" guid="{1E20603F-A5B8-42D5-BDBC-69DCE9C0FCDB}">Artifact: 分析类</a>表示设计元素实例扮演的角色；可以使用一个或多个设计模型元素实现这些角色。另外，单个设计元素可以实现多个角色。以下资料讨论了实现分析角色的方法：
</p>
<ul>
    <li>
        分析类可以成为设计模型中的单个设计类。
    </li>
    <li>
        分析类可以成为设计模型中的设计类的一部分。
    </li>
    <li>
        分析类可以成为设计模型中的聚集设计类。（表示不能将该聚集中的部件显式建模为分析类）。
    </li>
    <li>
        分析类可以成为从设计模型中的相同类继承的一组设计类。
    </li>
    <li>
        分析类可以成为设计模型中的一组功能相关的设计类。
    </li>
    <li>
        分析类可以成为设计模型中的设计子系统。
    </li>
    <li>
        分析类可以成为设计子系统的部件，例如一个或多个接口以及它们的对应实现。
    </li>
    <li>
        分析类可以成为设计模型中的关系。
    </li>
    <li>
        分析类之间的关系可以成为设计模型中的设计类。
    </li>
    <li>
        分析类主要处理功能需求并对来自“问题”域的对象建模；设计类处理非功能需求并对来自“解决方案”域的对象建模。
    </li>
    <li>
        可以使用分析类来表示“希望系统支持的对象”，而无需决定用硬件支持分析类的多少部分，用软件支持分析类的多少部分。因此，可以使用硬件实现部分分析类，而根本不在设计模型中对分析类进行建模。
    </li>
</ul>
<p>
    以上各项的任意组合都是可以的。
</p>
<p>
    如果维护单独的分析模型，请确保维护从已确定的设计元素到它们对应的分析类的可跟踪性。关于更多信息，请参阅<a href="#Mapping to the Analysis Model">映射到分析模型</a>。
</p>
<h3>
    <a id="Mapping to the Analysis Model" name="Mapping to the Analysis Model">映射到分析模型</a> <img height="20" alt="回到页首"     src="./../../../rup/resources/top.gif" width="26" border="0" />
</h3>
<p>
    本节仅适用于维护单独分析模型的情况。
</p>
<p>
    设计期间，将确定支持与架构和所选技术更紧密地保持一致的设计元素。应将分析模型中的每个分析类与设计模型中至少一个设计类相关联。
</p>
<p>
    为对此可跟踪性建模，应得出从设计元素到它所代表分析类的 &lt;&lt;跟踪&gt;&gt; 依赖关系，如下图中所示：&nbsp;
</p>
<p>
    <img height="85" alt="本图显示跟踪依赖关系。" src="./../../../rup/guidances/guidelines/resources/md_des1.gif" width="437" border="0" />
</p>
<p>
    注意：可跟踪性链接是<i>从</i>设计模型元素<i>到</i>分析模型元素绘制的，以使设计模型依赖于分析模型而不是其他方法。
</p>
<h3>
    <a key="设计模型（design model）" text="映射到实现模型" name="XE_design_model__mapping_to_the_Implementation_Model" id="XE_design_model__mapping_to_the_Implementation_Model" class="index"></a><a id="toImplementation" name="toImplementation">映射到实现模型</a>
</h3>
<p>
    应在设计开始之前确定设计模型中的类应如何与实现类相关；应在特定于项目的设计指南中描述此信息。
</p>
<p>
    设计模型可能或多或少地与实现模型相近，这依赖于如何将设计模型的类、包和子系统映射到实现模型中的实现类、文件、包和子系统。实现期间，通常将解决与实现环境相关的小策略问题，这些问题不应影响到设计模型。例如，可以在实现期间添加类和子系统以处理并行开发，或调整导入依赖关系。关于更多信息，请参阅<a class="elementLinkWithType" href="./../../../rup/tasks/structure_implementation_model_E0E0DEF9.html" guid="{35272424-8A0A-4DDD-BA74-C91B80A8D046}">Task: 构造实现模型</a>以及<a class="elementLinkWithType" href="./../../../rup/guidances/concepts/mapping_from_design_to_code_D1454680.html" guid="1.424219730601675E-305">Concept: 从设计到代码的映射</a>。
</p>
<p>
    从设计模型到实现模型应当有一致的映射。<a class="elementLinkWithType" href="./../../../rup/workproducts/rup_project_specific_guidelines_8DC8DA32.html" guid="{E5501201-7EE6-4243-AE91-73880FF76FC1}">Artifact: 特定于项目的指南</a>应定义此映射，并且应在整个设计模型中应用一致的抽象级别。
</p>
<h3>
    <b><a key="设计模型（design model）" text="从分析模型进行映射" href="#Characteristics of a Good Design Model" name="XE_design_model__mapping_from_the_Analysis_Model" id="XE_design_model__mapping_from_the_Analysis_Model" class="index"></a><a id="Characteristics of a Good Design Model" name="Characteristics of a Good Design Model">良好设计模型的特征</a></b>
</h3>
<p>
    <a key="设计模型（design model）" text="好的设计模型的特征" name="XE_design_model__characteristics_of_a_good" id="XE_design_model__characteristics_of_a_good" class="index"></a>良好设计模型有以下特征：
</p>
<ul>
    <li>
        它满足系统需求。
    </li>
    <li>
        它可以适应实现环境中的更改。
    </li>
    <li>
        相对于其他可能的对象模型和系统实现，易于维护。
    </li>
    <li>
        实现方式明确。
    </li>
    <li>
        不包含最好在程序代码中记录的信息。
    </li>
    <li>
        易于适应需求更改。
    </li>
</ul>
<p>
    关于具体特征，请参阅<a class="elementLinkWithType" href="./../../../rup/guidances/checklists/design_model_18BE347C.html" guid="1.4639852935143625E-305">Checklist: 设计模型</a>。
</p><br />
<br /></td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright">Copyright &copy; 2008 版权所有 东软集团股份有限公司&nbsp; 联系邮箱:<a href="mailto:tcoe@neusoft.com">tcoe@neusoft.com</a></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script type="text/javascript" language="JavaScript">
				contentPage.onload();
			</script>
</html>
